package data;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Constant {
	public static String OracleAddress = "5.43.78.66";
	public static String OracleAdminUsr = "system";
	public static String OracleAdminPwd = "Oracle123";
	public static String[] SYS_PRIVS = {"CREATE PROFILE",
										"ALTER PROFILE",
										"DROP PROFILE",
										"CREATE ROLE",
										"ALTER ANY ROLE",
										"DROP ANY ROLE",
										"GRANT ANY ROLE",
										"CREATE SESSION",
										"CREATE ANY TABLE",
										"ALTER ANY TABLE",
										"DROP ANY TABLE",
										"SELECT ANY TABLE",
										"DELETE ANY TABLE",
										"INSERT ANY TABLE",
										"UPDATE ANY TABLE",
										"CREATE USER",
										"ALTER USER",
										"DROP USER"};
	public static Boolean checkPrivs(String privs){
		Boolean result = false;
		for(int i = 0; i < SYS_PRIVS.length; i++){
			if(SYS_PRIVS[i].compareTo(privs) == 0){
				result = true;
				break;
			}
		}
		return result;
	}
	
	private static String convertToHex(byte[] data) { 
        StringBuffer buf = new StringBuffer();
        for (int i = 0; i < data.length; i++) { 
            int halfbyte = (data[i] >>> 4) & 0x0F;
            int two_halfs = 0;
            do { 
                if ((0 <= halfbyte) && (halfbyte <= 9)) 
                    buf.append((char) ('0' + halfbyte));
                else 
                    buf.append((char) ('a' + (halfbyte - 10)));
                halfbyte = data[i] & 0x0F;
            } while(two_halfs++ < 1);
        } 
        return buf.toString();
    } 

	public static String md5hash(String text){
        MessageDigest md = null;
        
		try {
			md = MessageDigest.getInstance("MD5");
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        try {
			md = MessageDigest.getInstance("MD5");
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        byte[] md5hash = new byte[32];
        md.update(text.getBytes(), 0, text.length());
        md5hash = md.digest();
        
        return convertToHex(md5hash).toUpperCase();
	}
}
